﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnliQ.Service.Contracts;

namespace UnliQ.Data
{
    public interface IQueueRepo : IData<EventDTO, int>
    {
        void AddInitValues(IList<EventDTO> events, IList<EventDateDTO> eventDates, IList<RecurringDTO> recurring, IList<EventRecurringDTO> eventsRecurring, IList<EventDateSequenceDTO> eventDateSequence, IList<EventTriggerDTO> eventTrigger);

        int AssignUserToQueue(int userId, string eventName = "", int eventId = 0);

        void RemoveUserFromQueue(int userId, string eventName = "", int eventId = 0);

        List<EventDTO> GetListActive();

        List<EventDTO> GetUserEvents(int userId);

        List<int> GetUsersInEvent(string eventName = "", int eventId = 0);

        int GetCurrentQueue(string eventName = "", int eventId = 0);

        int NextQueue(string eventName = "", int eventId = 0);

        List<EventDTO> GetUserTriggeredEvents(int userId);
    }
}
